import axios from 'axios'
import { baseUrl } from '@/config/baseConfig.js'
import { Message } from 'element-ui'
import router from '@/router/index.js'
import { getToken } from '@/util/storage.js'
/* 封装一个axios实例，自己封装的实例可以添加一些自定义的配置 */
const instance = axios.create({
  baseURL: baseUrl,
  timeout: 3000
})

//请求拦截器 在请求头中加token
instance.interceptors.request.use(
  config => {
    // 如果token不为空，则请求的时候添加token
    const token = getToken()
    if(token){
      config.headers.token = token
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    let res = response.data
    console.log(res)
    // 200表示正常，如果非200表示结果是不对的，统一处理错误
    if (res.status !== 200) {
      Message.error(res.message)
      if(res.message === "token已经失效"){
        router.push('/login')
      }
      // 这里一定要抛Promise的异常
      return Promise.reject(res.message)
    }
    return res
  },
  error => {
    return Promise.reject(error)
  }
)

export default instance
